/**
 *
 * 它是一个长期存储得解决方法，因为放在state中的数据在刷新时会丢失，
 * 这时候使用这个plugin.js插件它会帮你存储起来。
 *
 * @param {*} store
 *
 */
const plugin = store => {
  //   const arr = Object.keys(store.state)
  //   const obj = {}

  //   arr.forEach(item => {
  //     if (window.sessionStorage.getItem(item)) {
  //       obj[item] = JSON.parse(window.sessionStorage.getItem(item))
  //       store.replaceState(obj)
  //     }
  //   })

  /**
   * 订阅观察 store变化
   */
  // 当 store 初始化后调用
  store.subscribe((mutation, state) => {
    // 每次 mutation 之后调用
    // mutation 的格式为 { type, payload }
    const { type, payload } = mutation
    //console.log('type==================TODO业务处理TODO=============')
    console.log('state====================Begin=======================')
    console.log(type, payload)
    // console.log('payload===========================================')
    // console.log(payload) //
    // console.log('state====================Begin=======================')
    // console.log(state.menu.length)
    console.log(JSON.stringify(state.setting))
    console.log('state====================End=======================')
  })
}

export default plugin
